/**
 * 
 */
package cn.biplam.back.sql.procedure.statement;

import cn.biplam.back.sql.procedure.Statement;
import cn.biplam.back.sql.procedure.Statement_Type;

/**
 * 
 * @author 	WangSong 2009-10-13 下午03:25:55
 * @version 1.0
 */
public class AssignStatement extends Statement {

	/**变量赋值关键字*/
	String sAssignKeyword;
	/**变量赋值符号(默认是=)*/
	String sAssignSymbol="=";
	String sName;
	ArithStatement value;
	
	/**
	 * 构造方法	传入变量名和赋值表达式初始化
	 * @param name		赋值的变量名
	 * @param value		赋值表达式(算术表达式)
	 */
	public AssignStatement(String name,ArithStatement value) {
		super(Statement_Type.Assign);
		this.sName=name;
		this.value=value;
	}

	/**
	 * 返回SQL文本
	 * @return	String
	 */
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		if(this.sAssignKeyword!=null){
			sb.append(this.sAssignKeyword);
			sb.append(' ');
		}
		sb.append(this.sName);
		sb.append(this.sAssignSymbol);
		sb.append(this.value.toString());
		sb.append(";\n");
		return sb.toString();
	}
	
	/**
	 * 设置变量赋值关键字
	 * @param declareKeyword	变量赋值关键字
	 */
	public void setAssignKeyword(String assignKeyword){
		this.sAssignKeyword=assignKeyword;
	}
	
	/**
	 * 设置变量赋值的符号(默认是=)
	 * @param assignSymbol		变量赋值符号
	 */
	public void setAssignSymbol(String assignSymbol){
		this.sAssignSymbol=assignSymbol;
	}


}
